package com.woniu.service;

import com.woniu.dto.OrderAddDTO;
import com.woniu.dto.OrderEditDTO;
import com.woniu.dto.OrderExportDTO;
import com.woniu.dto.OrderSearchDTO;
import com.woniu.entity.Order;
import com.woniu.mapper.OrderMapper;
import com.woniu.util.ResponseUtil;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;


public interface OrderService {

    // 订单搜索接口  可按下单时间范围,订单编号,客户,订单状态来搜索
    ResponseUtil findSearchOrders(OrderSearchDTO orderSearchDTO);

    // 逻辑删除
    ResponseUtil findDeleteById(String orderId);

    // 用于获取指定订单（通过 orderId 标识）的详细信息，以便进行编辑操作
    ResponseUtil getOrderForEdit(String orderId);

    // 接收前端提交的编辑后订单数据，对订单进行更新操作（包括订单主表和订单项）
    ResponseUtil editOrder(OrderEditDTO orderEditDTO);

    // 添加订单
    ResponseUtil addOrder(OrderAddDTO orderAddDTO) throws InterruptedException;

    ResponseUtil findPaidUnshippedOrders();

    // 订单审批
    ResponseUtil submitApproval(String orderId);

    // 分页查询用于导出的数据
    List<OrderExportDTO> findExportOrders(int pageIndex);

    // 统计总订单数
    long countTotalOrders();

    ResponseUtil editOrderReturn(Order order);

    ResponseUtil getFullOrderDetail(String orderId);

    ResponseUtil findSearchOrdersReturn(OrderSearchDTO searchDTO);
}
